17、ROS2 Rviz2使用
1、Rviz2简介
机器人开发过程中,各种各样的功能,如果我们只是从数据层面去做分析,很难快速理解数据的效果,比如机器人模型,我们需要知道自己设计的模型长啥样,还有模型内部众多坐标系在运动过程中都在哪些位置。
再比如机械臂运动规划和移动机器人自主导航,我们希望可以看到机器人周边的环境、规划的路径,当然还有传感器的信息,摄像头、三维相机、激光雷达等等,数据是用来做计算的,可视化的效果才是给人看的。
所以,数据可视化可以大大提高开发效率,Rviz2就是这样一款机器人开发过程中的数据可视化软件,机器人模型、传感器信息、环境信息等等,全都可以在这里搞定。
2、准备工作
- 如果有实体机器人可以在机器人主控端启动rviz练习本节课程内容,如果没有实体机器人,我们可以通过gazebo仿真的方式启动turtlebot3仿真机器人,来模拟激光雷达、相机等话题,方便接下来的数据可视化
注意: 以下的安装步骤非必须,如果手中有实体机器人,设置好多机通信之后可以直接使用实机的雷达信息,可以自行选择使用实机雷达或虚拟仿真机器人;以下内容适合没有实机的用户使用。
- 本节课程以仿真机器人为例,教学rviz2的可视化功能,不管是实机还是仿真机器人,rviz2的操作流程都是相同的。
- 安装tutlebot3模拟器功能包
xxxxxxxxxx sudo apt install ros- ${ROS_DISTRO} -turtlebot3 *
- 安装ros和gazebo桥接工具
xxxxxxxxxx sudo apt install ros- ${ROS_DISTRO} -ros-gz
- 设置turtlebot3机器人类型环境变量
xxxxxxxxxx export TURTLEBOT3_MODEL = waffle
- 启动gazebo仿真环境
xxxxxxxxxx ros2 launch turtlebot3_gazebo turtlebot3_world.launch.py

3、Rviz2启动
启动一个终端,使用如下命令即可启动:
xxxxxxxxxx rviz2
如果是在docker中启动,请务必确保已经开启了GUI显示。

4、图像数据可视化
在左侧Displays窗口中点击“Add”,找到Image显示项,OK确认后就可以加入显示列表啦,然后配置好该显示项订阅的图像话题,就可以顺利看到机器人的摄像头图像啦。

- 将
Fixed Frame选择为base_footprint坐标系,放置坐标变换错误 - 选择相机彩色画面话题
/camera/image_raw - 此时我们可以看到Camera窗口中看到当前仿真机器人的视角画面

5、雷达数据可视化
在左侧Displays窗口中点击“Add”,选择Laserscan,然后配置订阅的话题名,此时就可以看到激光点啦

LaserScan的Topic话题选择/sacn- 此时我们就可以看到激光雷达的点云轮廓

6、机器人模型可视化
在左侧Displays窗口中点击“Add”,选择RobotModel

- 在机器人的
DescriptionTopic选项中,选择话题/robot_deseription - 此时我们就可以在Rviz2中看到机器人的可视化模型

7、其它数据可视化
rivz_default_plugins中列举了很多常用的数据可视化插件,大家可以一一尝试使用。
